#
# This task is the thing that creates a vm for later use
#

- name: get vm list
  delegate_to: "{{ vmhost }}"
  virt: command=list_vms
  register: result
  always_run: yes

- name: ensure the lv for the guest is made
  lvol: lv={{ inventory_hostname }} vg={{ volgroup }} size={{ lvm_size }} state=present
  delegate_to: "{{ vmhost }}"
  when: inventory_hostname not in result.list_vms

- name: run the virt-install
  shell: "{{ virt_install_command }}"
  delegate_to: "{{ vmhost }}"
  when: inventory_hostname not in result.list_vms

- name: wait for the install to finish
  virt: command=status name={{ inventory_hostname }}
  register: vmstatus
  until: vmstatus.status == 'shutdown'
  delegate_to: "{{ vmhost }}"
  retries: 1500
  delay: 10
  when: inventory_hostname not in result.list_vms

- name: start the vm up
  action: virt state=running name={{ inventory_hostname }}
  delegate_to: "{{ vmhost }}"
  when: inventory_hostname not in result.list_vms

- name: set it to autostart
  action: virt command=autostart name={{ inventory_hostname }}
  delegate_to: "{{ vmhost }}"
  when: inventory_hostname not in result.list_vms

- name: wait for ssh on the vm to start back
  local_action: wait_for delay=10 host={{ inventory_hostname }} port=22 state=started timeout=1200
  when: inventory_hostname not in result.list_vms
